!function ( t, e ){e();}( this, function ()
{
    "use strict";function t ( t ){var e = typeof t;return null !== t && ( "object" === e || "function" === e );} function e ( t ){return "function" == typeof t;} function n ( t ){B = t;} function r ( t ){G = t;} function o (){return function (){return process.nextTick( a );};} function i (){return "undefined" != typeof z ? function (){z( a );} : c();} function s ()
    {
        var t = 0,
            e = new J( a ),
            n = document.createTextNode( "" );return e.observe( n, {characterData: !0} ), function (){n.data = t = ++t % 2;};
    } function u (){var t = new MessageChannel();return t.port1.onmessage = a, function (){return t.port2.postMessage( 0 );};} function c (){var t = setTimeout;return function (){return t( a, 1 );};} function a ()
    {
        for ( var t = 0;t < W;t += 2 )
        {
            var e = V[ t ],
                n = V[ t + 1 ];e( n ), V[ t ] = void 0, V[ t + 1 ] = void 0;
        }W = 0;
    } function f ()
    {
        try {var t = Function( "return this" )().require( "vertx" );return z = t.runOnLoop || t.runOnContext, i();}
        catch ( e ){return c();}
    } function l ( t, e )
    {
        var n = this,
            r = new this.constructor( p );void 0 === r[ Z ] && O( r );var o = n._state;if ( o ){var i = arguments[ o - 1 ];G( function (){return P( o, r, i, n._result );} );}
        else {E( n, r, t, e );} return r;
    } function h ( t ){var e = this;if ( t && "object" == typeof t && t.constructor === e ) {return t;} var n = new e( p );return g( n, t ), n;} function p (){} function v (){return new TypeError( "You cannot resolve a promise with itself" );} function d (){return new TypeError( "A promises callback cannot return that same promise." );} function _ ( t )
    {
        try {return t.then;}
        catch ( e ){return nt.error = e, nt;}
    } function y ( t, e, n, r )
    {
        try {t.call( e, n, r );}
        catch ( o ){return o;}
    } function m ( t, e, n )
    {
        G( function ( t )
        {
            var r = !1,
                o = y( n, e, function ( n ){r || ( r = !0, e !== n ? g( t, n ) : S( t, n ) );}, function ( e ){r || ( r = !0, j( t, e ) );}, "Settle: " + ( t._label || " unknown promise" ) );!r && o && ( r = !0, j( t, o ) );
        }, t );
    } function b ( t, e ){e._state === tt ? S( t, e._result ) : e._state === et ? j( t, e._result ) : E( e, void 0, function ( e ){return g( t, e );}, function ( e ){return j( t, e );} );} function w ( t, n, r ){n.constructor === t.constructor && r === l && n.constructor.resolve === h ? b( t, n ) : r === nt ? ( j( t, nt.error ), nt.error = null ) : void 0 === r ? S( t, n ) : e( r ) ? m( t, n, r ) : S( t, n );} function g ( e, n ){e === n ? j( e, v() ) : t( n ) ? w( e, n, _( n ) ) : S( e, n );} function A ( t ){t._onerror && t._onerror( t._result ), T( t );} function S ( t, e ){t._state === $ && ( t._result = e, t._state = tt, 0 !== t._subscribers.length && G( T, t ) );} function j ( t, e ){t._state === $ && ( t._state = et, t._result = e, G( A, t ) );} function E ( t, e, n, r )
    {
        var o = t._subscribers,
            i = o.length;t._onerror = null, o[ i ] = e, o[ i + tt ] = n, o[ i + et ] = r, 0 === i && t._state && G( T, t );
    } function T ( t )
    {
        var e = t._subscribers,
            n = t._state;if ( 0 !== e.length ){for ( var r = void 0, o = void 0, i = t._result, s = 0;s < e.length;s += 3 ){r = e[ s ], o = e[ s + n ], r ? P( n, r, o, i ) : o( i );}t._subscribers.length = 0;}
    } function M ( t, e )
    {
        try {return t( e );}
        catch ( n ){return nt.error = n, nt;}
    } function P ( t, n, r, o )
    {
        var i = e( r ),
            s = void 0,
            u = void 0,
            c = void 0,
            a = void 0;if ( i ){if ( s = M( r, o ), s === nt ? ( a = !0, u = s.error, s.error = null ) : c = !0, n === s ) {return void j( n, d() );}}
        else {s = o, c = !0;}n._state !== $ || ( i && c ? g( n, s ) : a ? j( n, u ) : t === tt ? S( n, s ) : t === et && j( n, s ) );
    } function x ( t, e )
    {
        try {e( function ( e ){g( t, e );}, function ( e ){j( t, e );} );}
        catch ( n ){j( t, n );}
    } function C (){return rt++;} function O ( t ){t[ Z ] = rt++, t._state = void 0, t._result = void 0, t._subscribers = [];} function k (){return new Error( "Array Methods must be provided an Array" );} function F ( t ){return new ot( this, t ).promise;} function Y ( t ){var e = this;return new e( U( t ) ? function ( n, r ){for ( var o = t.length, i = 0;i < o;i++ ){e.resolve( t[ i ] ).then( n, r );}} : function ( t, e ){return e( new TypeError( "You must pass an array to race." ) );} );} function q ( t )
    {
        var e = this,
            n = new e( p );return j( n, t ), n;
    } function D (){throw new TypeError( "You must pass a resolver function as the first argument to the promise constructor" );} function K (){throw new TypeError( "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function." );} function L ()
    {
        var t = void 0;if ( "undefined" != typeof global ){t = global;}
        else if ( "undefined" != typeof self ){t = self;}
        else
        {
            try {t = Function( "return this" )();}
            catch ( e ){throw new Error( "polyfill failed because global object is unavailable in this environment" );}
        } var n = t.Promise;if ( n )
        {
            var r = null;try {r = Object.prototype.toString.call( n.resolve() );}
            catch ( e ){} if ( "[object Promise]" === r && !n.cast ) {return;}
        }t.Promise = it;
    } var N = void 0;N = Array.isArray ? Array.isArray : function ( t ){return "[object Array]" === Object.prototype.toString.call( t );};var U = N,
        W = 0,
        z = void 0,
        B = void 0,
        G = function ( t, e ){V[ W ] = t, V[ W + 1 ] = e, W += 2, 2 === W && ( B ? B( a ) : X() );},
        H = "undefined" != typeof window ? window : void 0,
        I = H || {},
        J = I.MutationObserver || I.WebKitMutationObserver,
        Q = "undefined" == typeof self && "undefined" != typeof process && "[object process]" === {}.toString.call( process ),
        R = "undefined" != typeof Uint8ClampedArray && "undefined" != typeof importScripts && "undefined" != typeof MessageChannel,
        V = new Array( 1e3 ),
        X = void 0;X = Q ? o() : J ? s() : R ? u() : void 0 === H && "function" == typeof require ? f() : c();var Z = Math.random().toString( 36 ).substring( 2 ),
        $ = void 0,
        tt = 1,
        et = 2,
        nt = {error: null},
        rt = 0,
        ot = function ()
        {
            function t ( t, e ){this._instanceConstructor = t, this.promise = new t( p ), this.promise[ Z ] || O( this.promise ), U( e ) ? ( this.length = e.length, this._remaining = e.length, this._result = new Array( this.length ), 0 === this.length ? S( this.promise, this._result ) : ( this.length = this.length || 0, this._enumerate( e ), 0 === this._remaining && S( this.promise, this._result ) ) ) : j( this.promise, k() );} return t.prototype._enumerate = function ( t ){for ( var e = 0;this._state === $ && e < t.length;e++ ) {this._eachEntry( t[ e ], e );}}, t.prototype._eachEntry = function ( t, e )
            {
                var n = this._instanceConstructor,
                    r = n.resolve;if ( r === h )
                {
                    var o = _( t );if ( o === l && t._state !== $ ) {this._settledAt( t._state, e, t._result );}
                    else if ( "function" != typeof o ) {this._remaining--, this._result[ e ] = t;}
                    else if ( n === it ){var i = new n( p );w( i, t, o ), this._willSettleAt( i, e );}
                    else {this._willSettleAt( new n( function ( e ){return e( t );} ), e );}
                }
                else {this._willSettleAt( r( t ), e );}
            }, t.prototype._settledAt = function ( t, e, n ){var r = this.promise;r._state === $ && ( this._remaining--, t === et ? j( r, n ) : this._result[ e ] = n ), 0 === this._remaining && S( r, this._result );}, t.prototype._willSettleAt = function ( t, e ){var n = this;E( t, void 0, function ( t ){return n._settledAt( tt, e, t );}, function ( t ){return n._settledAt( et, e, t );} );}, t;
        }(),
        it = function ()
        {
            function t ( e ){this[ Z ] = C(), this._result = this._state = void 0, this._subscribers = [], p !== e && ( "function" != typeof e && D(), this instanceof t ? x( this, e ) : K() );} return t.prototype[ "catch" ] = function ( t ){return this.then( null, t );}, t.prototype[ "finally" ] = function ( t )
            {
                var e = this,
                    n = e.constructor;return e.then( function ( e ){return n.resolve( t() ).then( function (){return e;} );}, function ( e ){return n.resolve( t() ).then( function (){throw e;} );} );
            }, t;
        }();return it.prototype.then = l, it.all = F, it.race = Y, it.resolve = h, it.reject = q, it._setScheduler = n, it._setAsap = r, it._asap = G, it.polyfill = L, it.Promise = it, it.polyfill(), it;
} );